<?php
def("amicitia/modelo/ejecucion/","Regla");
def("amicitia/modelo/entidades/","Pareja");
def("amicitia/modelo/entidades/","Persona");
def("amicitia/modelo/entidades/","Juego");
def("amicitia/persistencia/","ServicioPersistencia");

/**
 * Esta regla verifica que una pareja no se repita con respecto al juego
 * anterior.
 * 
 * @author Willy A. Kuster
 */
class ReglaJuegoAnterior implements Regla {
	
	private static $gruposDeParejas = array();
	
	public function verificar(Pareja $pareja, Persona $interesado, array $rama, Juego $juego) {
		
		if(!isset(self::$gruposDeParejas[$juego->getId()]))
			self::$gruposDeParejas[$juego->getId()] = ServicioPersistencia::obtenerParejasDelJuegoPasado($juego);
		
		$parejasPasadas = self::$gruposDeParejas[$juego->getId()];
		
		foreach ($parejasPasadas as $parejaPasada){
			if($parejaPasada->getReceptor() == $pareja->getReceptor() &&
			$parejaPasada->getDador() == $pareja->getDador())
				return false;
		}
		
		return true;
		
	}
	
}
?>